/**
 * 
 */
package org.vsg.stock.core.indicator.kline;

import java.util.List;

import org.vsg.stock.core.KLineStock;
import org.vsg.stock.core.kline.DailyKLineStock;

/**
 * @author Bill Vison
 *
 */
public abstract class TrendingCycleBuilder {
	
	/**
	 * handle build running cycle for the stock
	 */
	abstract void buildUp();

	
	/**
	 * defined indicateor import list
	 * @param importedList
	 */
	abstract void setDailyKLineStockList(List<DailyKLineStock> importedList);
	
	
	/**
	 * this attribute not support for vol
	 * and it can support open , high , close , low
	 * @return
	 */
	abstract void setKLineStockAttribute(KLineStock.Attribute stockAttribute );
	
	
	private int turnAroundArgs = 3;
	/**
	 * if not set thie argument, the default value is 3
	 * @param n
	 */
	public void setTurnAroundArgs(int n) {
		this.turnAroundArgs = n;
	}
	
	public int getTurnAroundArgs() {
		return this.turnAroundArgs;
	}
	
	public abstract List<TrendingCycle> getTrendingCycleList();
	
}
